﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

/// <summary>
/// AsmxAnonimizeHandler の概要の説明です
/// </summary>
public class AsmxAnonimizeHandler : IHttpHandler
{
    //http://localhost:9110/urltest/WebService_1_.html/HelloWorld
    //のようなものを
    //http://localhost:9110/urltest/WebService.asmx/HelloWorld
    //にうつす。
    public AsmxAnonimizeHandler()
	{
	}

    #region IHttpHandler メンバ

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        string [] tmp = context.Request.RawUrl.Split('_');
        if (tmp.Length == 3)
        {
            string newUrl = tmp[0] + tmp[2];
            newUrl = newUrl.Replace(".html",".asmx");
            context.Response.Redirect(newUrl); // これだと一度クライアントに３０２がかえるのでだめ
            //context.Server.Transfer(newUrl);　// これも内部エラーがでる（ASMXがうまく実行されない）
        }
        // 以下はただのhtmlの時無限ループするからだめ。
        //else
        //{
        //    context.Response.Redirect(context.Request.RawUrl);
        //}
    }

    #endregion
}
